1 #importing all modules
2 from tkinter import *
3 from functools import partial
4 import tkinter.messagebox
5 import backend
6 backend.connect_database()
7
8 #A function for check that acc_no is integer or not
9 def check_string_in_account_no(check_acc_no):
10 r=check_acc_no.isdigit()
11 return r
12
13
14 #all buttons of page2
15 def create():
16 def create_customer_in_database():
17 def delete_create():
18 create_employee_frame.grid_forget()
19 page2()
20 name = entry5.get()
21 age = entry6.get()
22 address = entry7.get()
23 balance = entry8.get()
24 acc_type = entry9.get()
25 mobile_number = entry10.get()
26 if len(name) != 0 and len(age) != 0 and len(address) != 0 and len(balance) != 0 and len(acc_type) != 0 and len(
27 mobile_number) != 0:
28
29 acc_no = backend.create_customer(name, age, address, balance, acc_type, mobile_number)
30
31 label = Label(create_employee_frame, text='Your account number is {}'.format(acc_no))
32 label.grid(row=14)
33
34 button = Button(create_employee_frame, text="Exit", command=delete_create)
35 button.grid(row=15)
36 else:
37 label = Label(create_employee_frame, text='Please fill all entries')
38 label.grid(row=14)
39
40 button = Button(create_employee_frame, text="Exit", command=delete_create)
41 button.grid(row=15)
42 frame1.grid_forget()
43 global create_employee_frame
44 create_employee_frame=Frame(tk,bg='black')
45 create_employee_frame.grid(padx=500,pady=150)
46
47 label=Label(create_employee_frame,text='Customer Detail',font='bold')
48 label.grid(row=0,pady=4)
49 label = Label(create_employee_frame, text='Name', font='bold')
50 label.grid(row=1,pady=4)
51 global entry5
52 entry5=Entry(create_employee_frame)
53 entry5.grid(row=2,pady=4)
54 label = Label(create_employee_frame, text='Age', font='bold')
55 label.grid(row=3,pady=4)
56 global entry6
57 entry6=Entry(create_employee_frame)
58 entry6.grid(row=4,pady=4)
59 label = Label(create_employee_frame, text='address', font='bold')
60 label.grid(row=5,pady=4)
61 global entry7
62 entry7=Entry(create_employee_frame)
63 entry7.grid(row=6,pady=4)
64 label = Label(create_employee_frame, text='Balance', font='bold')
65 label.grid(row=7,pady=4)
66 global entry8
67 entry8=Entry(create_employee_frame)
68 entry8.grid(row=8,pady=4)
69 label = Label(create_employee_frame, text='Account Type', font='bold')
70 label.grid(row=9,pady=4)
71 label = Label(create_employee_frame, text='Mobile number', font='bold')
72 label.grid(row=11,pady=4)
73 global entry9
74 entry9 = Entry(create_employee_frame)
75 entry9.grid(row=10,pady=4)
76 global entry10
77 entry10 = Entry(create_employee_frame)
78 entry10.grid(row=12,pady=4)
79 button=Button(create_employee_frame,text='Submit',command=create_customer_in_database)
80 button.grid(row=13,pady=4)
81
82 mainloop()
83
84 def search_acc():
85 frame1.grid_forget()
86 global search_frame
87 search_frame=Frame(tk)
88 search_frame.grid(padx=500,pady=300)
89
90 label=Label(search_frame,text="Enter account number",font='bold')
91 label.grid(row=0,pady=6)
92
93 global entry11
94 entry11=Entry(search_frame)
95 entry11.grid(row=1,pady=6)
96
97 button=Button(search_frame,text="Search",command=show)
98 button.grid(row=3)
99
100 mainloop()
101
102 def show():
103 def clear_show_frame():
104 show_frame.grid_forget()
105 page2()
106 def back_page2():
107 search_frame.grid_forget()
108 page2()
109
110 acc_no=entry11.get()
111 r=check_string_in_account_no(acc_no)
112 if len(acc_no)!=0 and r:
113 details=backend.get_details(acc_no)
114 if details!=False:
115 search_frame.grid_forget()
116 global show_frame
117 show_frame=Frame(tk)
118 show_frame.grid(padx=400,pady=200)
119
120 label=Label(show_frame,text="Account_number:\t{}".format(details[0]),font='bold')
121 label.grid(row=0,pady=6)
122 label = Label(show_frame, text="Name:\t{}".format(details[1]),font='bold')
123 label.grid(row=1,pady=6)
124 label = Label(show_frame, text="Age:\t{}".format(details[2]),font='bold')
125 label.grid(row=2,pady=6)
126 label = Label(show_frame, text="Address:\t{}".format(details[3]),font='bold')
127 label.grid(row=3,pady=6)
128 label = Label(show_frame, text="Balance:\t{}".format(details[4]),font='bold')
129 label.grid(row=4,pady=6)
130 label = Label(show_frame, text="Account_type:\t{}".format(details[5]),font='bold')
131 label.grid(row=5,pady=6)
132 label = Label(show_frame, text="Mobile Number:\t{}".format(details[6]),font='bold')
133 label.grid(row=6,pady=6)
134 button=Button(show_frame,text='Exit',command=clear_show_frame,width=20,height=2,bg='red',fg='white')
135 button.grid(row=7,pady=6)
136 mainloop()
137 else:
138 label=Label(search_frame,text="Account Not Found")
139 label.grid()
140 button=Button(search_frame,text='Exit',command=back_page2)
141 button.grid()
142
143 else:
144 label = Label(search_frame, text="Enter correct account number")
145 label.grid()
146 button = Button(search_frame, text='Exit', command=back_page2)
147 button.grid()
148
149 def add():
150 frame1.grid_forget()
151 def search_in_database():
152 def back_page2():
153 search_frame.grid_forget()
154 page2()
155 global result
156 global acc_no
157 acc_no = entry11.get()
158 r=check_string_in_account_no(acc_no)
159 if len(acc_no)!=0 and r:
160 result = backend.check_acc_no(acc_no)
161 print(result)
162 if not result:
163 label = Label(search_frame, text="invalid account number")
164 label.grid(pady=2)
165 button=Button(search_frame, text="Exit",command=back_page2)
166 button.grid()
167 mainloop()
168 else:
169 def update_money():
170 new_money=entry12.get()
171 backend.update_balance(new_money,acc_no)
172 add_frame.grid_forget()
173 page2()
174
175 search_frame.grid_forget()
176 global add_frame
177 add_frame=Frame(tk)
178 add_frame.grid(padx=400,pady=300)
179
180 detail = backend.get_detail(acc_no)
181
182 label = Label(add_frame, text='Account holder name: {}'.format(detail[0][0]))
183 label.grid(row=0, pady=3)
184
185 label = Label(add_frame, text='Current amount: {}'.format(detail[0][1]))
186 label.grid(row=1, pady=3)
187
188 label=Label(add_frame,text='Enter Money')
189 label.grid(row=2,pady=3)
190 global entry12
191 entry12=Entry(add_frame)
192 entry12.grid(row=3,pady=3)
193
194 button=Button(add_frame,text='Add',command=update_money)
195 button.grid(row=4)
196
197 mainloop()
198 else:
199 label = Label(search_frame, text="Enter correct account number")
200 label.grid(pady=2)
201 button = Button(search_frame, text="Exit", command=back_page2)
202 button.grid()
203 mainloop()
204 def search_acc():
205 global search_frame
206 search_frame = Frame(tk)
207 search_frame.grid(padx=500, pady=300)
208
209 label = Label(search_frame, text="Enter account number", font='bold')
210 label.grid(row=0, pady=6)
211
212 global entry11
213 entry11 = Entry(search_frame)
214 entry11.grid(row=1, pady=6)
215
216 button = Button(search_frame, text="Search", command=search_in_database)
217 button.grid(row=3)
218
219 mainloop()
220 search_acc()
221
222 def withdraw():
223 frame1.grid_forget()
224
225 def search_in_database():
226 def go_page2():
227 search_frame.grid_forget()
228 page2()
229
230 global result
231 global acc_no
232 acc_no = entry11.get()
233 r=check_string_in_account_no(acc_no)
234 if len(acc_no)!=0 and r:
235 result = backend.check_acc_no(acc_no)
236 print(result)
237 if not result:
238 label = Label(search_frame, text="invalid account number")
239 label.grid(pady=2)
240 button = Button(search_frame, text="Exit", command=go_page2)
241 button.grid()
242 mainloop()
243 else:
244 def deduct_money():
245 new_money = entry12.get()
246 result=backend.deduct_balance(new_money, acc_no)
247 if result:
248 add_frame.grid_forget()
249 page2()
250 else:
251 label=Label(search_frame,text="Insufficient Balance")
252 label.grid(row=4)
253
254 button=Button(search_frame,text='Exit',command=go_page2)
255 button.grid(row=5)
256
257 mainloop()
258 search_frame.grid_forget()
259 global add_frame
260 add_frame = Frame(tk)
261 add_frame.grid(padx=400, pady=300)
262 detail=backend.get_detail(acc_no)
263
264 label=Label(add_frame,text='Account holder name: {}'.format(detail[0][0]))
265 label.grid(row=0,pady=3)
266
267 label = Label(add_frame, text='Current amount: {}'.format(detail[0][1]))
268 label.grid(row=1, pady=3)
269
270 label = Label(add_frame, text='Enter Money')
271 label.grid(row=2, pady=3)
272 global entry12
273 entry12 = Entry(add_frame)
274 entry12.grid(row=3, pady=3)
275
276 button = Button(add_frame, text='Withdraw', command=deduct_money)
277 button.grid(row=4)
278
279 mainloop()
280 else:
281 label = Label(search_frame, text="Enter correct account number")
282 label.grid(row=4)
283
284 button = Button(search_frame, text='Exit', command=go_page2)
285 button.grid(row=5)
286
287 mainloop()
288 def search_acc():
289 global search_frame
290 search_frame = Frame(tk)
291 search_frame.grid(padx=500, pady=300)
292
293 label = Label(search_frame, text="Enter account number", font='bold')
294 label.grid(row=0, pady=6)
295
296 global entry11
297 entry11 = Entry(search_frame)
298 entry11.grid(row=1, pady=6)
299
300 button = Button(search_frame, text="Search", command=search_in_database)
301 button.grid(row=3)
302
303 mainloop()
304
305 search_acc()
306
307 def check():
308 frame1.grid_forget()
309
310 def search_in_database():
311 def back_page2():
312 search_frame.grid_forget()
313 page2()
314 global result
315 global acc_no
316 acc_no = entry11.get()
317 r=check_string_in_account_no(acc_no)
318
319 if len(acc_no)!=0 and r:
320 result = backend.check_acc_no(acc_no)
321 print(result)
322 if not result:
323 label = Label(search_frame, text="invalid account number")
324 label.grid(pady=2)
325 button = Button(search_frame, text="Exit", command=back_page2)
326 button.grid()
327 mainloop()
328 else:
329 def delete_check_frame():
330 check_frame.grid_forget()
331 page2()
332 search_frame.grid_forget()
333 balance=backend.check_balance(acc_no)
334 global check_frame
335 check_frame=Frame(tk)
336 check_frame.grid(padx=500,pady=300)
337
338 label=Label(check_frame,text='Balance Is:{}'.format(balance),font='bold')
339 label.grid(row=0,pady=4)
340
341 button=Button(check_frame,text='Back',command=delete_check_frame,width=20,height=2,bg='red')
342 button.grid(row=1)
343
344 mainloop()
345 else:
346 label = Label(search_frame, text="Enter correct entry")
347 label.grid(pady=2)
348 button = Button(search_frame, text="Exit", command=back_page2)
349 button.grid()
350 mainloop()
351
352 def search_acc():
353 global search_frame
354 search_frame = Frame(tk)
355 search_frame.grid(padx=500, pady=300)
356
357 label = Label(search_frame, text="Enter account number", font='bold')
358 label.grid(row=0, pady=6)
359
360 global entry11
361
362 entry11 = Entry(search_frame)
363 entry11.grid(row=1, pady=6)
364
365 button = Button(search_frame, text="Search", command=search_in_database)
366 button.grid(row=3)
367
368 mainloop()
369
370 search_acc()
371
372 def update():
373 def back_to_page2():
374 search_frame.grid_forget()
375 page2()
376 def show_all_updateble_content():
377 def back_to_page2_from_update():
378 update_customer_frame.grid_forget()
379 page2()
380 #defining a function whose makes a update entry and submit butoon side to name button
381 def update_name():
382 #def a function eho updates name in database
383 def update_name_in_database():
384 new_name=entry_name.get()
385 r=check_string_in_account_no(new_name)
386 if len(new_name)!=0:
387 #function in backend that updates name in table
388 backend.update_name_in_bank_table(new_name,acc_no)
389 entry_name.destroy()
390 submit_button.destroy()
391 name_label.destroy()
392 else:
393 tkinter.messagebox.showinfo('Error','Please fill blanks')
394 entry_name.destroy()
395 submit_button.destroy()
396 name_label.destroy()
397 global entry_name
398 global name_label
399 name_label=Label(update_customer_frame,text='Enter new name')
400 name_label.grid(row=1,column=1)
401 entry_name=Entry(update_customer_frame)
402 entry_name.grid(row=1,column=2,padx=2)
403 global submit_button
404 submit_button=Button(update_customer_frame,text='Update',command=update_name_in_database)
405 submit_button.grid(row=1,column=3)
406 #defing a function who make gui fro age
407 def update_age():
408 # def a function eho updates name in database
409 def update_age_in_database():
410 new_age = entry_name.get()
411 r=check_string_in_account_no(new_age)
412 if len(new_age)!=0 and r:
413 # function in backend that updates name in table
414 backend.update_age_in_bank_table(new_age, acc_no)
415 entry_name.destroy()
416 submit_button.destroy()
417 age_label.destroy()
418 else:
419 tkinter.messagebox.showinfo('Error','Please enter age')
420 entry_name.destroy()
421 submit_button.destroy()
422 age_label.destroy()
423 global age_label
424 age_label = Label(update_customer_frame, text='Enter new Age:')
425 age_label.grid(row=2, column=1)
426 global entry_name
427 entry_name = Entry(update_customer_frame)
428 entry_name.grid(row=2, column=2, padx=2)
429 global submit_button
430 submit_button = Button(update_customer_frame, text='Update', command=update_age_in_database)
431 submit_button.grid(row=2, column=3)
432
433 # defing a function who make gui fro age
434 def update_address():
435 # def a function eho updates name in database
436 def update_address_in_database():
437 new_address = entry_name.get()
438 if len(new_address)!=0:
439 # function in backend that updates name in table
440 backend.update_address_in_bank_table(new_address, acc_no)
441 entry_name.destroy()
442 submit_button.destroy()
443 address_label.destroy()
444 else:
445 tkinter.messagebox.showinfo('Error','Please fill address')
446 entry_name.destroy()
447 submit_button.destroy()
448 address_label.destroy()
449 global address_label
450
451 address_label = Label(update_customer_frame, text='Enter new Address:')
452 address_label.grid(row=3, column=1)
453 global entry_name
454 entry_name = Entry(update_customer_frame)
455 entry_name.grid(row=3, column=2, padx=2)
456 global submit_button
457 submit_button = Button(update_customer_frame, text='Update', command=update_address_in_database)
458 submit_button.grid(row=3, column=3)
459
460 acc_no=entry_acc.get()
461
462 r=check_string_in_account_no(acc_no)
463 if r:
464 result = backend.check_acc_no(acc_no)
465 if result:
466 search_frame.grid_forget()
467 global update_customer_frame
468 update_customer_frame=Frame(tk)
469 update_customer_frame.grid(padx=300,pady=300)
470
471 label=Label(update_customer_frame,text='What do you want to update')
472 label.grid(row=0)
473
474 name_button=Button(update_customer_frame,text='Name',command=update_name)
475 name_button.grid(row=1,column=0,pady=6)
476
477 age_button=Button(update_customer_frame,text='Age',command=update_age)
478 age_button.grid(row=2,column=0,pady=6)
479
480 address_button=Button(update_customer_frame,text='Address',command=update_address)
481 address_button.grid(row=3,column=0,pady=6)
482
483 exit_button=Button(update_customer_frame,text='Exit',command=back_to_page2_from_update)
484 exit_button.grid(row=4)
485 mainloop()
486 else:
487 label = Label(search_frame, text='Invalid account number')
488 label.grid()
489
490 button = Button(search_frame, text='Exit', command=back_to_page2)
491 button.grid()
492
493 else:
494 label=Label(search_frame,text='Fill account number')
495 label.grid()
496
497 button=Button(search_frame,text='Exit',command=back_to_page2)
498 button.grid()
499
500 frame1.grid_forget()
501 #define gui for enter account number
502
503 global search_frame
504 search_frame=Frame(tk)
505 search_frame.grid(padx=500,pady=300)
506
507 label=Label(search_frame,text='Enter account number',font='bold')
508 label.grid(pady=4)
509
510 entry_acc=Entry(search_frame)
511 entry_acc.grid(pady=4)
512
513 button=Button(search_frame,text='update',command=show_all_updateble_content,bg='red')
514 button.grid()
515
516 def allmembers():
517 def clear_list_frame():
518 list_frame.grid_forget()
519 page2()
520 frame1.grid_forget()
521 details=backend.list_all_customers()
522 global tk
523
524
525 global list_frame
526 list_frame=Frame(tk)
527 list_frame.grid(padx=50,pady=50)
528 label=Label(list_frame,text="Acc_no\t\t\tName\t\t\tAge\t\t\tAddress\t\t\tbalance")
529 label.grid(pady=6)
530 for i in details:
531 label=Label(list_frame,text="{}\t\t\t{}\t\t\t{}\t\t\t{}\t\t\t{}".format(i[0],i[1],i[2],i[3],i[4]))
532 label.grid(pady=4)
533
534 button=Button(list_frame,text='Back',width=20,height=2,bg='red',command=clear_list_frame)
535 button.grid()
536 mainloop()
537
538 def delete():
539 frame1.grid_forget()
540
541 def search_in_database():
542 def back_page2():
543 search_frame.grid_forget()
544 page2()
545 global result
546 global acc_no
547 acc_no = entry11.get()
548 r=check_string_in_account_no(acc_no)
549 if len(acc_no)!=0 and r:
550 result = backend.check_acc_no(acc_no)
551 print(result)
552 if not result:
553
554 label = Label(search_frame, text="invalid account number")
555 label.grid(pady=2)
556 button = Button(search_frame, text="Exit", command=back_page2)
557 button.grid()
558 mainloop()
559 else:
560 backend.delete_acc(acc_no)
561 search_frame.grid_forget()
562 page2()
563 else:
564 label = Label(search_frame, text="Enter correct account number")
565 label.grid(pady=2)
566 button = Button(search_frame, text="Exit", command=back_page2)
567 button.grid()
568 def search_acc():
569 global search_frame
570 search_frame = Frame(tk)
571 search_frame.grid(padx=500, pady=300)
572
573 label = Label(search_frame, text="Enter account number", font='bold')
574 label.grid(row=0, pady=6)
575
576 global entry11
577 entry11 = Entry(search_frame)
578 entry11.grid(row=1, pady=6)
579
580 button = Button(search_frame, text="Delete", command=search_in_database)
581 button.grid(row=3)
582
583 mainloop()
584
585 search_acc()
586
587 #main page for employees
588 def page2():
589 def back_to_main_from_page2():
590 frame1.grid_forget()
591 global frame
592 frame = Frame(tk, bg='black')
593 frame.grid(padx=500, pady=250)
594
595 button = Button(frame, text="Admin", command=admin_login)
596 button.grid(row=0, pady=20)
597
598 button = Button(frame, text="Employee", command=employee_login)
599 button.grid(row=1, pady=20)
600
601 button = Button(frame, text="Exit", command=tk.destroy)
602 button.grid(row=2, pady=20)
603 tk.mainloop()
604
605 frame.grid_forget()
606 global frame1
607 frame1=Frame(tk,bg='black')
608 frame1.grid(padx=500,pady=100)
609 button1 = Button(frame1, text="Create Account", command=create,width=20,height=2)
610 button1.grid(row=0,pady=6)
611 button2 = Button(frame1, text="Show Details", command=search_acc,width=20,height=2)
612 button2.grid(row=1,pady=6)
613 button3 = Button(frame1, text="Add balance", command=add,width=20,height=2)
614 button3.grid(row=2,pady=6)
615 button4 = Button(frame1, text="Withdraw money", command=withdraw,width=20,height=2)
616 button4.grid(row=3,pady=6)
617 button5 = Button(frame1, text="Check balance", command=check,width=20,height=2)
618 button5.grid(row=4,pady=6)
619 button6 = Button(frame1, text="Update Account", command=update,width=20,height=2)
620 button6.grid(row=5,pady=6)
621 button7 = Button(frame1, text="List of all members", command=allmembers,width=20,height=2)
622 button7.grid(row=6,pady=6)
623 button8 = Button(frame1, text="Delete Account", command=delete,width=20,height=2)
624 button8.grid(row=7,pady=6)
625
626 button9 = Button(frame1, text="Exit", command=back_to_main_from_page2,width=20,height=2)
627 button9.grid(row=8,pady=6)
628
629 mainloop()
630
631
632 #all buttons of page1
633 def create_employee():
634 def create_emp_in_database():
635 def back_to_main_page1_from_create_emp():
636 frame_create_emp.grid_forget()
637 page1()
638
639 name = entry3.get()
640 password = entry4.get()
641 salary = entry16.get()
642 position = entry17.get()
643 if len(name) != 0 and len(password) != 0 and len(salary) != 0 and len(position) != 0:
644 backend.create_employee(name, password, salary, position)
645 frame_create_emp.grid_forget()
646 page1()
647 else:
648 label = Label(frame_create_emp, text="Please fill all entries")
649 label.grid(pady=2)
650
651 button = Button(frame_create_emp, text="Exit", command=back_to_main_page1_from_create_emp, bg='red')
652 button.grid()
653 page1_frame.grid_forget()
654
655 global frame_create_emp
656 frame_create_emp=Frame(tk,bg='black')
657 frame_create_emp.grid(padx=500,pady=200)
658
659 label=Label(frame_create_emp,text='Name:',font='bold')
660 label.grid(row=0,pady=4)
661 global entry3
662 entry3=Entry(frame_create_emp)
663 entry3.grid(row=1,pady=4)
664 label2=Label(frame_create_emp,text='Password',font='bold')
665 label2.grid(row=2,pady=4)
666 global entry4
667 entry4=Entry(frame_create_emp)
668 entry4.grid(row=3,pady=4)
669 label3 = Label(frame_create_emp, text='Salary',font='bold')
670 label3.grid(row=4,pady=4)
671 global entry16
672 entry16 = Entry(frame_create_emp)
673 entry16.grid(row=5,pady=4)
674 label4 = Label(frame_create_emp, text='Position',font='bold')
675 label4.grid(row=6,pady=4)
676 global entry17
677 entry17 = Entry(frame_create_emp)
678 entry17.grid(row=7,pady=4)
679
680 button=Button(frame_create_emp,text='Submit',command=create_emp_in_database,width=15,height=2)
681 button.grid(row=8,pady=4)
682
683 mainloop()
684
685 def update_employee():
686 def update_details_of_staff_member():
687 def back_to_page1():
688 show_employee_frame.grid_forget()
689 page1()
690 def update_that_particular_employee():
691 show_employee_frame.grid_forget()
692 def back_to_page1_from_update():
693 update_frame.destroy()
694 page1()
695
696 def update_name_in_database():
697
698 def database_calling():
699 new_name = entry19.get()
700 if len(new_name)!=0:
701 old_name=staff_name.get()
702 backend.update_employee_name(new_name,old_name)
703 entry19.destroy()
704 update_button.destroy()
705 else:
706 entry19.destroy()
707 update_button.destroy()
708 tkinter.messagebox.showinfo('Error','Please fill entry')
709 global entry19
710 entry19 = Entry(update_frame)
711 entry19.grid(row=1, column=1, padx=4)
712 global update_button
713 update_button = Button(update_frame, text='Update', command=database_calling)
714 update_button.grid(row=1, column=2, padx=4)
715
716 def update_password_in_database():
717
718 def database_calling():
719 new_password = entry19.get()
720 old_name=staff_name.get()
721 if len(new_password)!=0:
722 backend.update_employee_password(new_password,old_name)
723 entry19.destroy()
724 update_button.destroy()
725 else:
726 entry19.destroy()
727 update_button.destroy()
728 tkinter.messagebox.showinfo('Error','Please Fill Entry')
729 global entry19
730 entry19 = Entry(update_frame)
731 entry19.grid(row=2, column=1, padx=4)
732 global update_button
733 update_button = Button(update_frame, text='Update', command=database_calling)
734 update_button.grid(row=2, column=2, padx=4)
735
736 def update_salary_in_database():
737
738 def database_calling():
739 new_salary = entry19.get()
740 r=check_string_in_account_no(new_salary)
741 if len(new_salary)!=0 and r:
742
743 old_name=staff_name.get()
744 backend.update_employee_salary(new_salary,old_name)
745 entry19.destroy()
746 update_button.destroy()
747 else:
748 entry19.destroy()
749 update_button.destroy()
750 tkinter.messagebox.showinfo('Error','Invalid Input')
751
752 global entry19
753 entry19 = Entry(update_frame)
754 entry19.grid(row=3, column=1, padx=4)
755 global update_button
756 update_button = Button(update_frame, text='Update', command=database_calling)
757 update_button.grid(row=3, column=2, padx=4)
758
759 def update_position_in_database():
760
761 def database_calling():
762 new_position = entry19.get()
763 if len(new_position)!=0:
764
765 old_name=staff_name.get()
766 backend.update_employee_position(new_position,old_name)
767 entry19.destroy()
768 update_button.destroy()
769 else:
770 entry19.destroy()
771 update_button.destroy()
772 tkinter.messagebox.showinfo('Error','Please Fill Entry')
773
774 global entry19
775 entry19 = Entry(update_frame)
776 entry19.grid(row=4, column=1, padx=4)
777 global update_button
778 update_button = Button(update_frame, text='Update', command=database_calling)
779 update_button.grid(row=4, column=2, padx=4)
780
781 global update_frame
782 update_frame = Frame(tk)
783 update_frame.grid(padx=400, pady=250)
784
785 label = Label(update_frame, text='press what do you want to update',font='bold')
786 label.grid(pady=6)
787
788 button = Button(update_frame, text='Name', command=update_name_in_database,width=14,height=2)
789 button.grid(row=1, column=0, padx=2,pady=2)
790
791 button = Button(update_frame, text='password',command=update_password_in_database,width=14,height=2)
792 button.grid(row=2, column=0, padx=2,pady=2)
793
794 button = Button(update_frame, text='salary',command=update_salary_in_database,width=14,height=2)
795 button.grid(row=3, column=0, padx=2,pady=2)
796
797 button = Button(update_frame, text='position',command=update_position_in_database,width=14,height=2)
798 button.grid(row=4, column=0, padx=2,pady=2)
799
800 button = Button(update_frame, text='Back', command=back_to_page1_from_update,width=14,height=2)
801 button.grid(row=5, column=0,pady=2)
802
803
804
805
806 name=staff_name.get()
807 if len(name)!=0:
808 result=backend.check_name_in_staff(name)
809 if result:
810
811 update_that_particular_employee()
812 else:
813 label = Label(show_employee_frame, text='Employee not found')
814 label.grid()
815
816 button = Button(show_employee_frame, text='Exit', command=back_to_page1)
817 button.grid()
818
819 else:
820 label=Label(show_employee_frame,text='Fill the name')
821 label.grid()
822
823 button=Button(show_employee_frame,text='Exit',command=back_to_page1)
824 button.grid()
825
826
827
828
829 #entering name of staff member
830 page1_frame.grid_forget()
831 global show_employee_frame
832 show_employee_frame=Frame(tk)
833 show_employee_frame.grid(padx=300,pady=300)
834
835 label=Label(show_employee_frame,text='Enter name of staff member whom detail would you want to update')
836 label.grid()
837 global staff_name
838 staff_name=Entry(show_employee_frame)
839 staff_name.grid()
840 global update_butoon_for_staff
841 update_butoon_for_staff=Button(show_employee_frame,text='Update Details',command=update_details_of_staff_member)
842 update_butoon_for_staff.grid()
843
844 def show_employee():
845 def back_to_main_page1():
846 show_employee_frame.grid_forget()
847 page1()
848 page1_frame.grid_forget()
849
850 global show_employee_frame
851 show_employee_frame=Frame(tk)
852 show_employee_frame.grid(padx=50,pady=50)
853
854 label=Label(show_employee_frame,text='Name\t\t\tSalary\t\t\tPosition\t\t\tpassword',font='bold')
855 label.grid(row=0)
856
857 details=backend.show_employees()
858
859 for i in details:
860 label=Label(show_employee_frame,text="{}\t\t\t{}\t\t\t{}\t\t\t{}".format(i[0],i[1],i[2],i[3]))
861 label.grid(pady=4)
862
863 button=Button(show_employee_frame,text='Exit',command=back_to_main_page1,width=20,height=2,bg='red',font='bold')
864 button.grid()
865
866 mainloop()
867
868 def Total_money():
869 def back_to_main_page1_from_total_money():
870 all_money.grid_forget()
871 page1()
872
873 page1_frame.grid_forget()
874
875 all=backend.all_money()
876
877 global all_money
878 all_money=Frame(tk)
879 all_money.grid(padx=500,pady=300)
880
881 label=Label(all_money,text="Total Amount of money")
882 label.grid(row=0,pady=6)
883
884 label=Label(all_money,text='{}'.format(all))
885 label.grid(row=1)
886
887 button=Button(all_money,text="Back",command=back_to_main_page1_from_total_money,width=15,height=2)
888 button.grid(row=3)
889
890 mainloop()
891
892 def back_to_main():
893 page1_frame.grid_forget()
894 global frame
895 frame = Frame(tk, bg='black')
896 frame.grid(padx=500, pady=250)
897
898 button = Button(frame, text="Admin", command=admin_login)
899 button.grid(row=0, pady=20)
900
901 button = Button(frame, text="Employee", command=employee_login)
902 button.grid(row=1, pady=20)
903
904 button = Button(frame, text="Exit", command=tk.destroy)
905 button.grid(row=2, pady=20)
906 tk.mainloop()
907
908 mainloop()
909
910 #mai page for admin
911 def page1():
912 def back_to_main2():
913 admin_frame.grid_forget()
914 global frame
915 frame = Frame(tk, bg='black')
916 frame.grid(padx=500, pady=250)
917
918 button = Button(frame, text="Admin", command=admin_login)
919 button.grid(row=0, pady=20)
920
921 button = Button(frame, text="Employee", command=employee_login)
922 button.grid(row=1, pady=20)
923
924 button = Button(frame, text="Exit", command=tk.destroy)
925 button.grid(row=2, pady=20)
926 tk.mainloop()
927
928 mainloop()
929
930 name=entry1.get()
931 password=entry2.get()
932 if len(name)!=0 and len(password)!=0:
933 result=backend.check_admin(name,password)
934 print(result)
935 if result:
936 admin_frame.grid_forget()
937
938 global page1_frame
939 page1_frame = Frame(tk, bg='black')
940 page1_frame.grid(padx=500, pady=200)
941
942 button10 = Button(page1_frame, text="New Employee", command=create_employee, width=20, height=2)
943 button10.grid(row=0, pady=6)
944
945 button11 = Button(page1_frame, text="Update detail", command=update_employee, width=20, height=2)
946 button11.grid(row=1, pady=6)
947
948 button13 = Button(page1_frame, text="Show All Employee", command=show_employee, width=20, height=2)
949 button13.grid(row=2, pady=6)
950
951 button11 = Button(page1_frame, text="Total Money", command=Total_money, width=20, height=2)
952 button11.grid(row=3, pady=6)
953
954 button12 = Button(page1_frame, text="Back", command=back_to_main, width=20, height=2)
955 button12.grid(row=4, pady=6)
956
957 mainloop()
958 else:
959 label=Label(admin_frame,text="Invalid id and pasasword")
960 label.grid(row=6,pady=10)
961 button=Button(admin_frame,text='Exit',command=back_to_main2)
962 button.grid(row=7)
963 mainloop()
964 else:
965 label = Label(admin_frame, text="Please fill All Entries")
966 label.grid(row=6, pady=10)
967 button = Button(admin_frame, text='Exit', command=back_to_main2)
968 button.grid(row=7)
969 mainloop()
970
971 #Login form for employee
972 def employee_login():
973 def back_to_main3():
974 employee_frame.grid_forget()
975 global frame
976 frame = Frame(tk, bg='black')
977 frame.grid(padx=400, pady=250)
978
979 button = Button(frame, text="Admin", command=admin_login)
980 button.grid(row=0, pady=20)
981
982 button = Button(frame, text="Employee", command=employee_login)
983 button.grid(row=1, pady=20)
984
985 button = Button(frame, text="Exit", command=tk.destroy)
986 button.grid(row=2, pady=20)
987 tk.mainloop()
988
989 mainloop()
990 def check_emp():
991 name = entry1.get()
992 password = entry2.get()
993 if len(name) != 0 and len(password) != 0:
994 result = backend.check_employee(name, password)
995 print(result)
996 if result:
997 employee_frame.grid_forget()
998 page2()
999 else:
1000 label = Label(employee_frame, text="Invalid id and pasasword")
1001 label.grid(row=6, pady=10)
1002 button = Button(employee_frame, text='Exit', command=back_to_main3)
1003 button.grid(row=7)
1004
1005 mainloop()
1006 else:
1007 label = Label(employee_frame, text="Please Fill All Entries")
1008 label.grid(row=6, pady=10)
1009 button = Button(employee_frame, text='Exit', command=back_to_main3)
1010 button.grid(row=7)
1011
1012 mainloop()
1013 frame.grid_forget()
1014
1015 global employee_frame
1016 employee_frame = Frame(tk, bg='black')
1017 employee_frame.grid(padx=500, pady=200)
1018
1019 label = Label(employee_frame, text="Employee Login", font='bold')
1020 label.grid(row=0, pady=20)
1021
1022 label1 = Label(employee_frame, text="Name:")
1023 label1.grid(row=1, pady=10)
1024
1025 label2 = Label(employee_frame, text="Password:")
1026 label2.grid(row=3, pady=10)
1027 global entry1
1028 global entry2
1029 entry1 = Entry(employee_frame)
1030 entry1.grid(row=2, pady=10)
1031
1032 entry2 = Entry(employee_frame,show='*')
1033 entry2.grid(row=4, pady=10)
1034
1035 button = Button(employee_frame, text="Submit", command=check_emp)
1036 button.grid(row=5, pady=20)
1037 mainloop()
1038
1039 #Login form for admin
1040 def admin_login():
1041 frame.grid_forget()
1042 global admin_frame
1043 admin_frame = Frame(tk, bg='black')
1044 admin_frame.grid(padx=500, pady=250)
1045
1046 label = Label(admin_frame, text="Admin Login", font='bold')
1047 label.grid(row=0, pady=20)
1048
1049 label1 = Label(admin_frame, text="Name:")
1050 label1.grid(row=1, pady=10)
1051
1052 label2 = Label(admin_frame, text="Password:")
1053 label2.grid(row=3, pady=10)
1054 global entry1
1055 global entry2
1056 entry1 = Entry(admin_frame)
1057 entry1.grid(row=2, pady=10)
1058
1059 entry2 = Entry(admin_frame,show='*')
1060 entry2.grid(row=4, pady=10)
1061
1062 button = Button(admin_frame, text="Submit", command=page1)
1063 button.grid(row=5, pady=20)
1064 mainloop()
1065
1066
1067
1068 #creating window
1069 global tk
1070 tk=Tk()
1071
1072
1073 tk.config(bg='black')
1074 tk.title('Bank Managing System')
1075 tk.minsize(1200,800)
1076 tk.maxsize(1200,800)
1077
1078
1079
1080
1081 global frame
1082 frame=Frame(tk,bg='black')
1083 frame.grid(padx=500,pady=250)
1084
1085
1086 button=Button(frame,text="Admin",command=admin_login)
1087 button.grid(row=0,pady=20)
1088
1089 button=Button(frame,text="Employee",command=employee_login)
1090 button.grid(row=1,pady=20)
1091
1092 button=Button(frame,text="Exit",command=tk.destroy)
1093 button.grid(row=2,pady=20)
1094 tk.mainloop()